package com.xiyu.service.vo.infra.devops.customer;

import com.xiyu.service.vo.devops.customer.baseVO.DevopsCustomerBase;
import com.xiyu.service.vo.devops.project.baseVO.DevopsProjectBase;
import com.xiyu.service.vo.devops.project.baseVO.DevopsProjectVersionBase;
import com.xiyu.service.vo.devops.server.baseVO.DevopsServerBase;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.hibernate.validator.constraints.Length;
import jakarta.validation.Valid;
import com.xiyu.service.enums.common.CommonStatusEnum;
import com.xiyu.service.framework.validation.InEnum;
import java.math.BigDecimal;
    import org.springframework.format.annotation.DateTimeFormat;
    import static com.xiyu.service.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
    import java.time.LocalDateTime;

@Schema(description = "分页查询客户")
@Data
@AllArgsConstructor
public class CustomerPageQueryOutput extends DevopsCustomerBase {

    @Schema(description = "服务器")
    @Valid
    private server server;

    @Schema(description = "项目版本")
    @Valid
    private version version;

    @Schema(description = "客户主键ID")
    private Long id;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime updateTime;

    @Schema(description = "服务器")
    @Data
    public static class server extends DevopsServerBase {
    }

    @Schema(description = "项目版本")
    @Data
    public static class version extends DevopsProjectVersionBase {

        @Schema(description = "项目管理")
        private project project;
    }

    @Schema(description = "项目管理")
    @Data
    public static class project extends DevopsProjectBase {
    }
}